package label;

import java.util.ArrayList;

import serverAccess.ServerManager;

/**
 * Attention sensible aux accents !
 * Pour un label, donne d'autres label associés
 * @author louis
 *
 */
public class SynonymGetter {
	/**
	 * La liste des labels associes au mot
	 */
	private ArrayList<String> listeLabel;
	/**
	 * Un mot est un label
	 * Acces a la ressource : qui est l'objet qui a ce label ?
	 */
	private String mot;
	
	private ArrayList<String> listSousClass;
	
	private ArrayList<String> listInstance;
	/**
	 * Attention sensible aux accents
	 * @param mot
	 */
	public SynonymGetter(String mot) {
		this.mot = mot.toLowerCase();
		this.listeLabel = new ArrayList<String>();
		this.setListSousClass(new ArrayList<String>());
		this.listInstance = new ArrayList<String>();
	}
	
	public ArrayList<String> getListeLabel() {
		return listeLabel;
	}
	public void setListeLabel(ArrayList<String> listeLabel) {
		this.listeLabel = listeLabel;
	}
	public String getMot() {
		return mot;
	}
	public void setMot(String mot) {
		this.mot = mot;
	}
	
	public void getSynonym(){
		this.getLabelFromMot();
		this.getInstanceFromMot();
		this.getSousClasseFromMot();
	}

	/**
	 * Remplit l'arrayList des labels associés au label donné
	 * L'arrayList contient aussi le label passé en paramètre
	 */
	private void getLabelFromMot(){
		listeLabel = ServerManager.getInstance().getLabel(this.mot);
	}
	
	private void getSousClasseFromMot(){
		this.listSousClass = ServerManager.getInstance().getSousClasse(this.mot);
	}
	
	private void getInstanceFromMot(){
		this.listInstance = ServerManager.getInstance().getInstanceFromMot(this.mot);
	}

	public ArrayList<String> getListSousClass() {
		return listSousClass;
	}

	public void setListSousClass(ArrayList<String> listSousClass) {
		this.listSousClass = listSousClass;
	}
	

	public ArrayList<String> getListInstance() {
		return listInstance;
	}

	public void setListInstance(ArrayList<String> listInstance) {
		this.listInstance = listInstance;
	}
	
}
